﻿using System;
using System.IO;
using Interface.BO;
using OR;
using System.Configuration;
using BO;
using JMI_Nucleo.Classe;
using JMI_Nucleo.Enumerador;
using System.Collections.Generic;
using System.Data;
using Devart.Data.SQLite;
using System.Text;
using System.Globalization;

namespace JMI_Nfe
{
    public class Util
    {
        private string DiretorioArquivo;
        private IIBGE ibge;
   
        public Util()
        {
            try
            {
                DiretorioArquivo = ConfigurationManager.AppSettings.Get("PathArquivoNFe");
                ibge = new IBGE();
            }
            catch (Exception ex)
            {
                #region Grava log local
                mLog _info = new mLog();
                _info._TipoErro = TipoErro.Erro;
                _info.Mensagem = "Erro na configuração do diretório de arquivos da NFe\n" + ex.Message;
                _info.Metodo = "public Util()";
                _info.StackTrace = ex.StackTrace;
                _info.Tabela = String.Empty;
                LogLocal.Info = _info;
                LogLocal.Gravar();
                #endregion
            }
        }
       
        public void PopulaTabelaIBGE()
        {
        //    if (ibge.TabelaCarregada() == false)
        //    {
        //        Arquivo = Path.Combine(DiretorioArquivo, "TABIBGE.csv");

        //        if (File.Exists(Arquivo))
        //        {
        //            StreamReader stream = new StreamReader(Arquivo);

        //            string linha = null;
        //            int contador = 0;
        //            int contaGeral = 0;
        //            List<string> lst = new List<string>();

        //            while ((linha = stream.ReadLine()) != null)
        //            {
        //                try
        //                {
        //                    string[] coluna = linha.Split(';');
        //                    if (coluna[0] == "UF") { continue; }
        //                    contaGeral++;
        //                    if (contaGeral > 350)
        //                    {
        //                        break;
        //                    }
        //                    lst.Add(linha);
        //                    if (contador == 20)
        //                    {
        //                        if (Existe(lst, coluna[2])) { continue; }
        //                        ibge.SalvarEmBloco(lst);
        //                        contador = 0;
        //                        lst.Clear();
        //                    }
        //                    contador++;
        //                }
        //                catch (Exception ex)
        //                {
        //                    #region Grava log local
        //                    mLog _info = new mLog();
        //                    _info._TipoErro = TipoErro.Erro;
        //                    _info.Mensagem = "Erro na gravação dos dados.\n" + ex.Message;
        //                    _info.Metodo = "public void PopulaTabelaIBGE()";
        //                    _info.StackTrace = ex.StackTrace;
        //                    _info.Tabela = String.Empty;
        //                    LogLocal.Info = _info;
        //                    LogLocal.Gravar();
        //                    #endregion
        //                }
        //            }
        //            if (contador > 0)
        //                ibge.SalvarEmBloco(lst);
        //            stream.Close();
        //        }
        //        else
        //            JMIMsg.MsgAlerta("Arquivo com os códigos do IBGE não foi encontrado para importação.");
        //    }
        }
    }
}
